package com.fate.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fate.system.dto.menu.MenuPageDTO;
import com.fate.system.dto.menu.MenuTreeDTO;
import com.fate.system.dto.menu.PermissionAssignmentDTO;
import com.fate.system.entity.Menu;
import com.fate.system.vo.menu.MenuTreeVO;
import java.util.List;

/**
 * @author 47349
 * @description 针对表【sys_menu(菜单表)】的数据库操作Service
 * @createDate 2024-08-09 01:48:28
 */
public interface IMenuService extends IService<Menu> {

  /**
   * 分页获取列表
   *
   * @param pageDTO
   * @return
   */
  Page<Menu> getPageList(MenuPageDTO pageDTO);

  /**
   * 获取菜单树
   *
   * @param menuIds 菜单id集合
   * @return 菜单树
   */
  List<MenuTreeVO> getMenuTree(List<String> menuIds);

  /**
   * 获取菜单树
   *
   * @param menuTreeDTO 菜单树查询DTO
   * @return 菜单树
   */
  List<MenuTreeVO> getMenuTree(MenuTreeDTO menuTreeDTO);

  /**
   * 权限分配
   *
   * @param permissionAssignmentDTO 权限分配DTO
   */
  void permissionAssignment(PermissionAssignmentDTO permissionAssignmentDTO);

  /**
   * 根据角色id获取权限列表
   *
   * @param roleId 角色id
   * @return
   */
  List<String> getPermissionList(String roleId);
}
